#pragma once

#include <string>
using namespace std;

#define CLK_FLOAT_MAX      (3.402823466e+38F)
#define CLK_FLOAT_MIN      (1.175494351e-38F)
#define CLK_SCREEN_X       ((float)GetSystemMetrics(SM_CXSCREEN))
#define CLK_SCREEN_Y       ((float)GetSystemMetrics(SM_CYSCREEN))
#define CLK_SCREEN_HX      (CLK_SCREEN_X/2.0f)
#define CLK_SCREEN_HY      (CLK_SCREEN_Y/2.0f)
#define CLK_SCREEN_DIMEN   (V2DF(CLK_SCREEN_SIZEX,CLK_SCREEN_SIZEY))

#define CLK_PI             (3.14159265358979323846)
#define CLK_PIF            ((float)CLK_PI)
#define CLK_RADIAN(degree) (degree*((float)CLK_PI/180.0f))
#define CLK_DEGREE(radian) (radian*(180.0f/(float)CLK_PI))

int randI();
int randI(int a_min, int a_max);
float randF();
float randF(float a_min, float a_max);

void degreeClamp(float& a_degree);

wstring toWString(string a_str);